Skip to content

[pull] master from mattermost:master - #855

Merged
pull[bot] merged 5 commits into
code:masterfrom
mattermost:master
Jul 21, 2026
Merged

[pull] master from mattermost:master#855
pull[bot] merged 5 commits into
code:masterfrom
mattermost:master

Conversation

@pull

@pull pull Bot commented Jul 21, 2026

Copy link
Copy Markdown

See Commits and Changes for more details.


Created by pull[bot] (v2.0.0-alpha.4)

Can you help keep this open source service alive? 💖 Please sponsor : )

esarafianou and others added 5 commits July 21, 2026 13:40
* docs(P13c): add missing manage-plugins.mdx to Administration Guide Configure

source/administration-guide/configure/manage-plugins.rst existed in the
Sphinx repo pre-fork but was never carried over during the initial P2
move or the P13c Configure reconciliation pass. Port it verbatim
(RST -> MDX) with links/anchors verified against the current docs/main
tree (mmctl-command-line-tool, plugins, plugins-configuration-settings,
popular-integrations, environment-configuration-settings#maximum-file-size,
air-gapped-deployment).

#### Release Note
```release-note
NONE
```

Co-authored-by: Cursor <cursoragent@cursor.com>

* docs(P13/P14): port remaining content drift into monorepo

Ports outstanding content-only drift identified in docs-experimental
phase-P13/P14: V11.9 docs major release content, Azure Blob Storage
guide, ID-attribute case-sensitivity notes, ranked attribute types and
attribute value masking for ABAC, plugin management guide linkage, and
the P14 markdown action buttons reference page with its
interactive-messages cross-reference. Excludes all automation/workflow
files, which are handled separately.

Co-authored-by: Cursor <cursoragent@cursor.com>

* docs(sidebar): link top-level category headers to their landing page

buildCategory() only recognized a literal index.md(x) filename as a
category's landing page, but Overview, Deployment Guide, Administration
Guide, Security & Compliance, End User Guide, Integrations Guide, Get
Help, and Use Case Guide all use a *-index.md(x) filename instead (to
avoid collisions when flattening for URL stability). As a result,
clicking most top-level sidebar categories only expanded/collapsed the
list instead of navigating to their overview page. Recognize the
*-index.md(x) convention as a fallback so these categories link
correctly, matching the existing Deployment Guide/Overview behavior.

Co-authored-by: Cursor <cursoragent@cursor.com>

* docs(P13/P14): fix blog link typo and restore dropped Open Source Components entry

Audit against Sphinx source (docs/source/product-overview/) found two
drops from the 7e915c9 content-drift port:

- mattermost-v11-changelog.mdx: blog link slug had an erroneous "-0"
  (mattermost-v11-9-0-is-now-available -> mattermost-v11-9-is-now-available),
  likely copy-pasted from the v11.8.0 entry above it.
- mobile-app-changelog.mdx: the 2.42.0 release entry's "Open Source
  Components" subsection (voximplant/react-native-foreground-service
  removal) was dropped entirely during the RST->MDX port.

#### Release Note
```release-note
NONE
```

Co-authored-by: Cursor <cursoragent@cursor.com>

* docs(fix): remove standalone SQL comment line breaking MDX parse

A lone "--" comment line inside a <pre><code> SQL block was parsed by
remark as a setext heading underline, splitting the surrounding
paragraph and leaving the <code> tag unclosed. CI caught this in the
docusaurus build. Merge the comment into the surrounding paragraph.

Co-authored-by: Cursor <cursoragent@cursor.com>

* docs(fix): escape curly braces in JSONB path literal breaking SSG render

'{options}' inside a SQL <pre><code> block was parsed by MDX as a JSX
expression referencing an undefined "options" identifier, causing
"ReferenceError: options is not defined" during static site
generation. Escape the braces the same way already done for other
JSONB path literals elsewhere in this file. Verified with a full local
docusaurus build.

Co-authored-by: Cursor <cursoragent@cursor.com>

* docs(sidebar): reuse the landing-file resolver for nested category sorting/labels

The prior fix only applied the index.md(x) / *-index.md(x) fallback to
a category's own link resolution. Nested category sort keys and the
category label fallback still assumed a literal index.mdx, so a
sub-directory using the *-index.md(x) naming convention would sort by
its default position (9999) instead of its declared sidebar_position,
and its category label would fall back to a humanized directory name
instead of the landing page's title. Factor the resolver into a shared
findIndexFile() helper and use it in both places.

Co-authored-by: Cursor <cursoragent@cursor.com>

---------

Co-authored-by: Cursor <cursoragent@cursor.com>
…37524)

* ci: consolidate docs-preview checks into one status with preview URL

Drop the same-repo status-update jobs that cluttered the PR checks list,
and post a single docs-preview commit status whose Details link opens the
preview environment.

Co-authored-by: Cursor <cursoragent@cursor.com>

* remove comment

* Remove duplicate failure status update in docs-preview-fork workflow

The deploy job already posts a failure commit status via the shared
template, making the separate update-failure-status job redundant.

Co-authored-by: Cursor <cursoragent@cursor.com>

---------

Co-authored-by: Cursor <cursoragent@cursor.com>
…s, self-host sample downloads (#37591)

* docs(sidebar): group Integrations Guide and Administration Guide > Configure

Both sections were flat lists (20 and 34 items respectively) with no
logical grouping, unlike Overview/Deployment Guide which already got
manual groupings. Adds the same override pattern:

- Integrations Guide: group by integration type (Chat & Meeting
  Interop, ITSM & Dev Tools, No-Code Automation, Built-in
  Integrations with Webhooks/Slash Commands sub-groups).
- Administration Guide > Configure: group the ~12 settings-reference
  pages under one category, plus Search, Calls, Storage & Database,
  Email & Notifications, Billing & Account, and Branding groups.
  AI Agents Configuration stays a standalone top-level entry (3rd,
  after System Console Settings and Search) rather than being buried
  in a misc/optional bucket.

Co-authored-by: Cursor <cursoragent@cursor.com>

* docs(sidebar): document the manual grouping override pattern in README

Nothing explained how OVERVIEW_GROUPS/DEPLOYMENT_GROUPS (and now
ADMIN_CONFIGURE_GROUPS/INTEGRATIONS_GROUPS) work, or what to do when
adding a new file to one of these sections. The script already warns
on orphaned files, but that warning is easy to miss if you don't know
the override mechanism exists in the first place.

Co-authored-by: Cursor <cursoragent@cursor.com>

* docs(sidebar): reorganize gen-documentation-sidebar.mjs, config on top

Pure reorganization, no behavior change (verified byte-identical
sidebar JSON output before/after). All manual-grouping config
(*_GROUPS/*_ROOT_ORDER/*_HIDDEN constants for Overview, Deployment
Guide, Administration Guide > Configure, Integrations Guide) now
lives together at the top of the file, and all functions (generic
helpers, per-section builders, main) live together at the bottom.

Previously each section's config and builder functions were
interleaved in file order, so adding a page to one section meant
scanning past unrelated sections' logic to find where its config
lived.

Co-authored-by: Cursor <cursoragent@cursor.com>

* docs(sidebar): remove the empty Samples section

Sphinx never had a "Samples" navigation section — source/samples/ in
the Sphinx repo is marked :orphan: and deliberately excluded from any
toctree; it's a folder of downloadable static assets (JSON/XML/YAML/
CSV/zip) referenced inline via :download: from ~5 unrelated pages
(logging, EMM mobile deploy, Grafana/Loki centralized logging,
compliance export), never a browsable page.

The migrated docs/main/samples/index.mdx was an empty stub (frontmatter
only, no content), so it rendered as an empty top-level sidebar
category with nothing underneath — the "looks broken, not coming
soon" problem. Removed the stub page and the corresponding TOP_LEVEL
entry in the sidebar generator.

Note: the actual downloadable sample files were never migrated into
the new site's static assets — the 4 migrated pages that reference
them still link to github.com/mattermost/docs (the old repo) instead
of being self-hosted. Tracked as a separate follow-up, not fixed here.

Co-authored-by: Cursor <cursoragent@cursor.com>

* docs: self-host downloadable sample files instead of linking the old repo

Four migrated pages (logging, EMM mobile deploy, Grafana/Loki
centralized logging, compliance export) linked their downloadable
sample files (JSON/XML/YAML/zip) to github.com/mattermost/docs — the
old Sphinx repo — instead of hosting them on the new site. Every other
static asset (images) was copied into docs/site/static/ during
migration; these were missed.

Copies the 8 referenced files into docs/site/static/files/samples/
and repoints all 8 links to the self-hosted /files/samples/... paths,
matching the existing /images/... convention used everywhere else in
this content tree.

Co-authored-by: Cursor <cursoragent@cursor.com>

* docs(sidebar): remove the Recipes top-level nav section

The Sphinx source for this content (recipes/product-vulnerability-
incident.rst) is marked :orphan: with an explicit comment: "This page
is intentionally not accessible via the LHS" — Sphinx never surfaced
it as a navigable section either.

The migrated page (docs/main/recipes/product-vulnerability-incident.mdx)
was auto-promoted into a full top-level sidebar category by the
filesystem-driven generator, at equal visual weight to sections with
10+ items despite having exactly 1. Removing the TOP_LEVEL entry
matches Sphinx's original intent — the page stays reachable by direct
URL, just not discoverable via the sidebar.

Co-authored-by: Cursor <cursoragent@cursor.com>

* docs(sidebar): regroup Administration Guide > Manage by task

Manage had 37 files split into a flat top level (19) plus a nested
manage/admin/ sub-folder (18) — a raw filesystem artifact, not a real
Sphinx grouping: Sphinx has no manage-index.rst/toctree that groups
this content, and the admin/ sub-folder is never surfaced as its own
nav level in Sphinx's actual sidebar. Worse, the flat-vs-admin split
was internally inconsistent — related pages (monitoring/health,
billing, user/access management) were each scattered across both
buckets rather than following any coherent theme.

Replaces both with task-based groups: User & Access Management
(including an Attribute-Based Access Control sub-group), Server
Configuration & Maintenance, Monitoring & Diagnostics, Billing &
Licensing, Cloud Workspace Management, Notifications & Surveys,
Content & Product Governance, and Data Export & Migration. Customize
Branding stays a standalone entry (single item, not worth its own
group).

Co-authored-by: Cursor <cursoragent@cursor.com>

* docs(sidebar): harden buildAdminGuideSidebar's category resolution

Filter the items-fallback lookup to type === 'doc' before reading
.id, matching the same pattern already used in buildDeploymentSidebar
(dirNameFromId), instead of relying on category items implicitly
lacking an .id field.

Also track whether the Configure and Manage sub-categories were
actually found and regrouped, and warn if either is missing — so a
future filesystem change under Administration Guide (renamed/removed
sub-folder) surfaces as a build warning instead of silently leaving
the manual grouping override unapplied.

Co-authored-by: Cursor <cursoragent@cursor.com>

---------

Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
@pull pull Bot locked and limited conversation to collaborators Jul 21, 2026
@pull pull Bot added the ⤵️ pull label Jul 21, 2026
@pull
pull Bot merged commit 518b6b2 into code:master Jul 21, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants